基本上不會連續寫 30 天,甚至不會每天寫,但 ...... 由於工作的關係,我的職位就是 debugger engineer ,主題又是 deubgger 到底是怎麼做的?不需要太擔心沒辦法完成,而 debugger 指的是 gdb, lldb 等工具,實作內容是基於以下這兩個專案
以下是每天預期內容,簡單分了三類:INFO, LAB, STUDY SOURCE,分別代表讀書心得分享、實做、原始碼心得分享,實際執行的時候,不可能完全按照規劃來寫,這些東西太雜了,難易度說不太準
LAB 的部分會是以 python 下去撰寫,目的是要讓 python-ptrace 更接近 gdb 的功能,python-ptrace 底下已經有一個 gdb.py,實作了一些常用功能,而我會嘗試將他擴充
- Day 2: [INFO] GDB 基礎操作
- Day 3: [INFO] GDB 進階操作
- Day 4: [INFO] PTRACE
- Day 5: [LAB] PTRACE: inject code
- Day 6: [INFO] GDB Overview
- Day 7: [INFO] DWARF
- Day 8: [LAB] DWARF: parse
- Day 9: [STUDY SOURCE] python-ptrace overview
- Day 10: [STUDY SOURCE] python-ptrace breakpoint
- Day 11: [STUDY SOURCE] python-ptrace backtrace
- Day 12: [STUDY SOURCE] python-ptrace memory/register access
- Day 13: [LAB] GDB: build program space
- Day 14: [LAB] GDB: build program space
- Day 15: [LAB] GDB: enhance breakpoint feature (via file line)
- Day 16: [LAB] GDB: enhance breakpoint feature (via file line)
- Day 17: [INFO] thesis research Kernel-Assisted Debugging of Linux Applications
- Day 18: [INFO] thesis research Kernel-Assisted Debugging of Linux Applications
- Day 18: [INFO] UTRACE
- Day 19: [LAB] UTRACE
- Day 20: [INFO] GDBServer GDB stub
- Day 21: [LAB] GDB stub
- Day 22: [LAB] initial remote protocol
- Day 23: [LAB] implement remote protocol
- Day 24: [LAB] implement remote protocol
- Day 25: [LAB] initial reverse debugging
- Day 26: [LAB] implement reverse debugging
- Day 27: [LAB] implement reverse debugging
- Day 28: [INFO] "Trace Module" in Windows
- Day 29: [LAB] "Trace Module" in Window
- Day 30: [INFO] SUMMARY